<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<!-- $Id$ -->
<html> <head>
<title>Using the Real-time Extension in CIAO</title>
</head>

<body>
<h1>Using the Real-time Extension in CIAO</h1>

<!-- ============================================================ -->
<h3>Abstract</H3>

The real-time extension support in CIAO enables application developers
to deploy real-time applications by specifying real-time
configurations as XML descriptors without modifying the component
implementation.  In fact, embedding the real-time configuration
policies in component implementations decrease the reusability of the
software components.

Different types of real-time policy can be applied at different
stage of the component development lifecycle, e.g.,
<ul>
  <li>Component implementation
  <li>Component packaging
  <li>Application composition
  <li>Target platform configuration
  <li>Deployment configuration
</ul>

Real-time policies can also be applied to various scope in an
applications, e.g., many real-time policies can be associate with some
or all of the following ORB mechanisms:
<ul>
  <li>ORBs
  <li>POAs
  <li>Threads
  <li>Object references
</ul>

<!-- ============================================================ -->
<h3>CIAO's Real-time Extension</h3>

CIAO extends CCM's assembly descriptor to support the specifications
of real-time policies.  This mechanism allows you to allocate
resources that are global to a RTComponentServer and to define real-time
policies required by a component installation.  Currently, CIAO
support configuration of certain real-time policies at the POA level,
i.e., in CCM's terminology, the container level.  These policies
include:

<ol>
  <li>Priority Model Policy
  <li>Threadpool Policy
  <li>Banded Connection Policy
</ol>

The kind of resources that are global to a RT component server that CIAO
real-time extension specifies include:

<ol>
  <li>Threadpool
  <li>Threadpool with lanes
  <li>Connection bands
</ol>

<!-- ============================================================ -->
<h3>Using the CIAO Real-time Extension</h3>

Application developers can define the aforementioned Real-Time
extension Descriptor (.rtd file) that CIAO defines to allocate
resources and specify real-time policies.  The Document Type
Definition (DTD) for the real-time extension description is defined in
this <a href="XML/ciao_rt_cad_ext.dtd">file</a>.  Each .RTD file
specifies the required resources and the policy definitions within a
RTComponentServer.

A RTComponentServer can be associated to a .RTD file.  This is done by
using the "extension" element with "class" attributed set to
"RT-CAD-EXT", within a processcollocation or hostcollocation element.
Here is an example:
<code><pre>

  &lt;processcollocation&gt;
    .
    .
    .
   &lt;extension class="RT-CAD-EXT" origin="CIAO"&gt;somefile.rtd&lt;/extension&gt;
    .
  &lt;/processcollocation&gt;
</pre></code>

Each .RTD file contains the two major subelements:
<ul>
  <li>&lt;rtresources&gt;: defines all the RT resources the assciating
      RTComponentServer should provide.
  <li>&lt;rtpolicysets&gt;: defines named collections of policies
      (&lt;rtpolicyset&gt;) that apply to component installations in
      the RTComponentServer.
</ul>

The &lt;rtpolicyset&gt;'s defined in the .RTD file can be associated
to a component installation, i.e., a component placement within the
RTComponentServer to which the .RTD file is associated.  For example,

<code><pre>
   &lt;homeplacement&gt;
     .
     .
     ,
    &lt;extension class="RT-POLICY-SET"
                 origin="CIAO"&gt;A_POLICY_NAME&lt;/extension&gt;
     .
   &lt;/homeplacement&gt;
</pre></code>

<h3>Future Addition</h3>

As mentioned earlier, RT policies can be applied at various stages of
component-based deployment lifecycle and at different scope.  For
example, applying RTpolicies at the ORB level, or at the object
reference level of a component receptacle.  These extensions involve
at least, extending the "appropriate" XML descriptor definition and
extending the CIAO runtime, including core and/or the CIDL generated
code to configure the policies.  How other RT-related policies can be
added will be reviewed in my thesis available shortly.

<hr>
<address>Nanbor Wang</address>
<!-- hhmts start -->
Last modified: Sun Nov 30 19:23:25 Mountain Standard Time 2003
<!-- hhmts end -->
</body> </html>
